//
//  NSString+BCPNSString.h
//  BCP
//
//  Created by zhangke on 16/3/24.
//  Copyright © 2016年 525happy. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSString (BCPNSString)


/**string进行kCCHmacAlgSHA1加密,再转base64回string
 *
 *  @param key  secretKey
 *  
 *
 *  @return HmacSha1 format String
 */
- (NSString *)hmacSha1:(NSString*)key;

/**
 *  过滤所有表情
 *
 *  @return YES表示含有表情，NO表示不含有表情
 */
- (BOOL)stringContainsEmoji;
+ (BOOL)stringContainsEmoji:(NSString *)string;

/**
 *  计算字符串CGSize
 *
 *  @param size 要取高度则定宽（ ? ,MAXFLOAT）  要取宽度则定高（MAXFLOAT, ? ）
 *  @param font 字体
 *
 *  @return string容器的CGSize
 */
- (CGSize)getRectSizeWithSize:(CGSize)size font:(UIFont *)font;


/**
 *  计算带行间距的多行字符串高度
 *
 *  @param widthSize   容器宽度
 *  @param font        字体
 *  @param lineSpace   行间距
 *
 *  @return 字符串高度
 */
- (CGFloat)getStringHeightWithWidth:(CGFloat)widthSize font:(UIFont *)font lineSpace:(CGFloat)lineSpace;


/**
 *  string转NSMutableAttributedString，用于调整多行间距
 *  label.text = string;
 *  ==>>
 *  label.attributedText = [string stringToNSMutableAttributedString];
 *
 *  @param lineSpace 行间距
 *
 *  @return 带间距字符串
 */
- (NSMutableAttributedString *)stringToNSMutableAttributedString:(CGFloat)lineSpace;


/**
 *  排除null,(null),<null>,NULL
 *
 *  @return YES表示不合法，NO表示合法
 */
- (BOOL)stringInvalid;

// 计算label宽度
- (CGFloat)getWidthWithFont:(UIFont *)font;
- (CGFloat)getWidthWithTitle:(NSString *)title font:(UIFont *)font;
// 计算label高度
- (CGFloat)getHeightByWidth:(CGFloat)width title:(NSString *)title font:(UIFont *)font;

//获取需要尺寸的图片名称
-(NSString *)getPicuRLWithSize:(NSString *)size;

// 此方法随机产生32位字符串
+(NSString *)ret32bitString;
//手机号码的有效性判断
//检测是否是手机号码
- (BOOL)isMobileNumber:(NSString *)mobileNum;
//邮箱的有效性判断
-(BOOL)isValidateEmail:(NSString *)email;
//设置label上显示不同字体
- (NSMutableAttributedString *)setFontWithStr:(NSString *)str font:(int)font range:(NSRange)range;
//设置label上显示不同颜色
- (NSMutableAttributedString *)setColorWithStr:(NSString *)str range:(NSRange)range color:(UIColor *)color;

@end
